#ifndef PM_DLG_EDIT_TAG_H_INCLUDED
#define PM_DLG_EDIT_TAG_H_INCLUDED

#include "dlgedittaggui.h"
#include "pm/tag.h"

/**
 * \class DlgEditTag
 */
class DlgEditTag : public DlgEditTagGui
{
protected:
	pm::Tag m_tag;
	
public:
	DlgEditTag(wxWindow* parent, const wxString& title);
	
	const pm::Tag& GetTag() const { return m_tag; }
	
protected:
	virtual bool Submit() = 0;
	
	virtual void OnSubmit(wxCommandEvent& event);
};

/**
 * \class DlgNewTag
 */
class DlgNewTag : public DlgEditTag
{
public:
	DlgNewTag(wxWindow* parent);
	
protected:
	virtual bool Submit();
};

/**
 * \class DlgUpdateTag
 */
class DlgUpdateTag : public DlgEditTag
{
public:
	DlgUpdateTag(wxWindow* parent, const pm::Tag& tag);
	
protected:
	virtual bool Submit();
};

#endif // PM_DLG_EDIT_TAG_H_INCLUDED
